1. Field of the Invention
This invention relates generally to bit mapped graphics display systems used in computers, and relates more particularly to an apparatus and a method for reducing the overhead burden on a central processing unit during the generation of character output data.
2. Description of the Prior Art
Many prior art computers have the capability of generating both character and graphical output data. Some computers utilize a specialized circuit, known as a bit mapped graphics display system, to generate character and graphical output data. The bit mapped graphics display system generates output data in response to programmed instructions supplied by a central processing unit. A typical bit mapped graphics display system consists of a display memory for temporarily storing output data, a display memory driver circuit coupled to the central processing unit for generating and supplying output data to the display memory, a display device such as a cathode ray tube for displaying the output data in a perceptible form and a display driver for periodically transferring the output data from the display memory to the display device.
The term "bit mapped" refers to the method of storing the output data in the display memory. The display memory is visualized as a two dimensional array of pixels, where each pixel corresponds to an individual picture element in the display device. Each pixel in the display memory contains one bit of information: a value of either 0 or 1. The pixels as a whole form a two dimensional map that represents the display device. The bits of information in the map comprises the output data. Thus, the term "bit mapped" in a bit mapped graphics display system refers to the use of a bit map of pixels for the temporary storage of output data.
As mentioned above, each picture element of the display device is represented in the display memory by a corresponding pixel. When the output data stored in the display memory is transferred to the display device by the display driver, a perceptible image of the output data is formed by highlighting certain picture elements. Picture elements corresponding to those pixels having values equal to 1 are highlighted, while the remaining picture elements, corresponding to those pixels having values equal to 0, are left blank. The method of highlighting picture elements depends on the type of display device used. If the display device is a cathode ray tube, for example, a picture element is highlighted by beaming electrons to phosphors that comprise the picture element, causing the phosphors to glow.
Prior art computers with bit mapped graphics display systems are capable of generating and displaying both character and graphical output data. The generation and display of these two types of output data require two distinctly different modes of operation. Graphics patterns are generated by the display memory driver circuit by executing graphics instructions supplied by the central processing unit. Character output data is generated by transferring character bit maps from a character memory to the display memory.
Typical graphics instructions contain information as to the type and size of the pattern to be generated and the location in the display memory at which the pattern is to be placed. A processor within the display memory driver circuit executes the graphics instructions according to a stored program. Execution of the graphics instructions identifies which pixels correspond to the desired graphics pattern. Changing the values of the identified pixels completes the task of generating the graphics pattern. For example, a graphics instruction might direct that a straight line be drawn between two selected pixels. In executing the instruction, the display memory driver circuit identifies all the pixels that are located on a straight line between the two selected pixels, and changes the value of each to a 1.
The generation of character output data by prior bit mapped graphics display systems consists of a data transfer process, rather than a computational process as with graphical output data. The size and shape of each character are predetermined and stored in a character memory in the form of character bit maps. Each character bit map is a two dimensional group of pixels that represents a character. A complete character set typically consists of character bit maps for a range of alphabetic, numerical, punctuation, and other symbols. In general, character output data is accomplished by retrieving character bit maps from the character memory and by supplying those character bit maps to the display memory.
Several methods of transferring character bit maps from the character memory to the display memory, commonly called a block copy operation, are utilized by prior art bit mapped graphics display systems. One method uses the central processing unit of the computer for retrieval of the character bit maps from the character memory. To transfer a character to the display memory, the central processing unit first retrieves the character bit map from the character memory, and then transfers it to the display memory driver circuit. The display memory driver circuit, in turn, transfers the character bit map to the display memory. This method imposes a substantial overhead burden upon the central processing unit due to the time required to retrieve and transfer the character bit maps. Such an overhead burden is undesirable because it prevents the central processing unit from executing other instructions, thereby slowing the performance of the computer.
Another method of generating character output data reduces the overhead burden upon the central processing unit by utilizing the display memory driver circuit, rather than the central processing unit, to retrieve the character bit maps from the character memory. In order to permit direct access to the character bit maps by the display memory driver circuit, the display memory is expanded in size and partitioned into a visible portion and a nonvisible portion. The visible portion of the display memory is used for the temporary storage of the bit map representation of the output data, just as the display memory described above is used. The nonvisible portion of the display memory is used as the character memory for the storage of the character bit maps. In operation, the central processing unit supplies a character output instruction plus a character memory address to the display memory driver circuit. The display memory driver circuit executes the instruction by retrieving a character bit from the nonvisible display memory at the character memory address. The character bit map is then transferred to the visible display memory to complete the character output task.
Such a method reduces the overhead burden on the central processing unit, as compared to the previously described method. Overhead burden is reduced because the central processing unit has to supply only a character output instruction plus a character memory location to the display memory driver circuit, rather than an entire character bit map, for each character to be displayed. Although the overhead burden is reduced, it is not minimized. Once the central processing unit determines that a character is to be displayed, it has to perform several processing steps to locate, retrieve and supply the necessary instruction and character memory location data to the display memory driver circuit.
Some computers with bit mapped graphics display systems use character bit maps of variable size. Unfortunately, the ability to use variable size character bit maps doubles the overhead burden. To accommodate variable size character bit maps, the central processing units need to supply a character size instruction and associated data to specify the character size, in addition to the character output instruction and character memory location. As a result, the performance of such computers suffers greatly due to the overhead burden on the central processing unit during the generation of character output data.
What is needed, then, is a way of reducing the overhead burden on a central processing unit during the generation of character output data. What is specifically needed is a display memory driver circuit that operates with a minimal amount of supervision by the central processing unit, and that accommodates variable size characters.